# 通过多态的方式,实现警察通过各种警犬进行工作
# 设计类 Dog EnemyDog DrugDog police; 警察使用不同的狗完成不同的任务
# 狗的技能:work 警察: work_with_dog

class Dog(object):
    def work(self):
        pass

class EnemyDog(Dog): # 继承Dog类
    def work(self): # ⼦类重写⽗类同名⽅法
        print('追击敌⼈...')


class DrugDog(Dog):
    def work(self):
        print('追查毒品...')


class police(object):
    def work_with_dog(self, dog:Dog):
        # 传⼊不同的对象，执⾏不同的代码，即不同的work函数
        dog.work()


if __name__ == '__main__':

    # 1 实例化敌人犬, 缉毒犬, 警察
    enemydog = EnemyDog()
    drugdog = DrugDog()
    police = police()

    # 2 警察通过多态实现不同的任务
    police.work_with_dog(enemydog)
    police.work_with_dog(drugdog)
